/* 封装所有的请求方法 */
import $axios from "@/api/axios"
import $mockAxios from "@/api/mockAxios"


/**
 * 请求获取 三级分类的方法
 * @author  全体 1208
 * @param  空
 * @returns Promise 
 */
export const ReqGetBaseCategoryList = () => $axios.get("/api/product/getBaseCategoryList")

/**
 * 请求获取首页 轮播图数据
 * @returns   Promise 
 */
export const ReqGetSlide = () => $mockAxios.get("/slide");


/**
 * 请求获取首页 楼层数据
 * @returns   Promise 
 */
export const ReqGetFloor = () => $mockAxios.get("/floor");

/**
 * 请求获取商品数据
 * @param {*} params   {}
 * @returns   Promise  {}
 */
export const ReqGetGoodsList = (params) => $axios.post("/api/list",params);


/**
 * 请求获取商品详情方法
 * @param {*} id   number
 * @returns   Promise  商品详情
 */

export const ReqGetGoodsDetail = (id) => $axios.get(`/api/item/${id}`);

/**
 * 请求添加商品到购物车
 * @param {*} skuId   string
 * @param {*} skuNum   string
 * @returns  Promise  null
 */
export const ReqAddToCart = (skuId,skuNum) => $axios.post(`/api/cart/addToCart/${skuId}/${skuNum}`)



/**
 * 请求获取购物车数据列表
 * @returns   Promise 
 */
export const ReqGetCartList = () => $axios.get("/api/cart/cartList");

/**
 * 更新单个商品的选中状态
 * @param {*} skuID   商品id
 * @param {*} isChecked   选中状态
 * @returns   Promise
 */
export const ReqCheckOneCart = (skuID,isChecked) => $axios.get(`/api/cart/checkCart/${skuID}/${isChecked}`)


/**
 * 批量更新商品选中状态
 * @param {*} isChecked   选中状态
 * @param {*} skuIdList   商品id列表数组
 * @returns Promise
 */
export const ReqBatchChecked = (isChecked,skuIdList) => $axios.post(`/api/cart/batchCheckCart/${isChecked}`,skuIdList)


/**
 * 删除单个商品
 * @param {*} skuId   
 * @returns Promise
 */
export const ReqDeleteOneGoods = (skuId) => $axios.delete(`/api/cart/deleteCart/${skuId}`);

/**
 * 批量删除购物车选中的商品
 * @param {*} skuIdList   []
 * @returns Promise
 */
export const ReqBatchDeleteCart = (skuIdList) => $axios.post("/api/cart/batchDeleteCart",skuIdList);


/**
 * 请求获取验证码
 * @param {*} phone   string  手机号
 * @returns Promise
 */
export const ReqGetCode = (phone) => $axios.get(`/api/user/passport/sendCode/${phone}`)


/**
 * 请求注册
 * @param {*} params   {phone，password,code}
 * @returns   Promise
 */
export const ReqRegister = (params) => $axios.post("/api/user/passport/register",params);


/**
 * 请求登录
 * @param {*} params   {phone,password}
 * @returns   Promise
 */
export const ReqLogin = (params) => $axios.post("/api/user/passport/login",params)

/**
 * 请求获取用户数据
 * @returns   Promise
 */
export const ReqGetUserInfo = () => $axios.get("/api/user/passport/auth/getUserInfo")

/**
 * 退出登录
 * @returns 
 */
export const ReqLogout = () => $axios.get("/api/user/passport/logout");

/**
 * 请求获取用户收货地址
 * @returns Promise
 */
export const ReqUserAddressList = () => $mockAxios.get("/api/user/userAddress/auth/findUserAddressList")


/**
 * 请求获取交易页面商品列表
 * @returns Promise
 */
export const ReqTradeList = () => $axios.get("/api/order/auth/trade")

/**
 * 请求提交订单
 * @param {*} tradeNo   订单号  query
 * @param {*} params    请求体参数  
 * @returns Promise
 */
export const ReqSubmitOrder = (tradeNo,params) => $axios.post(`/api/order/auth/submitOrder?tradeNo=${tradeNo}`,params)

/**
 * 请求获取订单 支付信息
 * @param {*} orderId   订单号
 * @returns Promise
 */
export const ReqPayment = (orderId) => $axios.get(`/api/payment/weixin/createNative/${orderId}`)

/**
 * 请求查询支付状态
 * @param {*} orderId   订单号id
 * @returns Promise
 */
export const ReqPayStatus = (orderId) => $axios.get(`/api/payment/weixin/queryPayStatus/${orderId}`)

/**
 * 请求获取 我的订单列表数据
 * @param {*} page   当前页码
 * @param {*} limit  每页数量
 * @returns Promise
 */
export const ReqOrderList = (page,limit) => $axios.get(`/api/order/auth/${page}/${limit}`)
